﻿using System.Web.UI;

namespace System
{
    /// <summary>
    /// 消息传递控制器
    /// <para>by tangjingbo at 2009-11-20 16:09</para>
    /// </summary>
    /// <typeparam name="TMessage">The type of the message.</typeparam>
    public interface IMessageTransmitter<TMessage> : IMessageResult<TMessage>
    {
        /// <summary>
        /// 获得监听器注册句柄，用以改变监听设置
        /// </summary>
        IMessageListenerRegHandle<TMessage> RegHandle { get; }

        /// <summary>
        /// 获取消息允许处理的最大次数
        /// </summary>
        int MaxDistance { get; set; }

        /// <summary>
        /// 获得消息的发送者
        /// </summary>
        Control GetSender();

        /// <summary>
        /// 中止当前消息的继续传递（将传播最远距离限制设为<![CDATA[<]]>0）
        /// </summary>
        void Terminate();
    }
}